package com.tedu.api.io;


import org.junit.Test;

import javax.xml.namespace.QName;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.RandomAccessFile;

/**
 * 标准IO流----目的：数据传输  输出文本、图片
 * Java定义一套标准流-->数据传输-->创建流：直接创建某个流对象。
 * 标准流规则1.：反向划分---输入流和输出流
 *             输入流：读入--->文件--->相对于程序--->文件往程序走
 *             InputStream(抽象类：定义所有读的写法)【学习：子实现类】
 *             输出流：写入--->文件--->相对于程序-->程序写出
 *             OutputStream(抽象类：定义所有写的方法)【学习：子实现类】
 *         2.：功能划分
 *         低级流：【节点流】：是建立在程序与数据源之间的“管道”
 *                    功能：负责搬运的数据流，输入流于输出流都有自己的低级流
 *                    特点：一个字节一个字节读或者写的方法
 *         FileOutputStream  低级流继承InputStream---文件输出流
 *         FileInputStream   低级流继承OutputStream---文件输入流
 *         高级流【处理器】：不能直接创建对象，不能独立存在
 *                   功能：专门处理低级流以及其他高级流的流
 *                   特点：搬运数据时，实现具体功能：效率提高流
 *  ---总结：输入流和输出流，具备功能：低级流于高级流，
 *  实际使用：明确使用具体流，每个流都有自己功能
 *
 *
 */
public class IOAPI {
    /**                                        文件输入流
     *                 输入流         低级流---
     * 标准流   方向        功能：                文件输出流：FileOutputStream
     *                输出流         高级流
     * 需求：写出一个文件fos.text
     */
    @Test
    public void testFOS() throws IOException {
        RandomAccessFile raf=
                new RandomAccessFile("fos.text","rw");
        //低级流---文件输出流对象---从程序中写出“文件：数据”
        FileOutputStream fos=new FileOutputStream("fos.text");
        //需求:fos.txt 增加一行文本
        String say="独one无two";
        //字符串由字符数组构成--数组的功能---getBytes()转换为字节数组
        //输出流--写功能：write(byte[] b) 写出字节数组
        fos.write(say.getBytes());
    }
}







